home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 14 / CU Amiga Magazine's Super CD-ROM 14 (1997)(EMAP Images)(GB)(Track 1 of 3)[!][issue 1997-09].iso / CUCD / Programming / RKMLibsPrgs / keymap / d.asm < prev    next >
Assembly Source File  |  1992-09-03  |  25KB  |  659 lines

  1. *
  2. * Copyright (c) 1992 Commodore-Amiga, Inc.
  3. * This example is provided in electronic form by Commodore-Amiga, Inc. for 
  4. * use with the "Amiga ROM Kernel Reference Manual: Devices", 3rd Edition, 
  5. * published by Addison-Wesley (ISBN 0-201-56775-X).
  6. * The "Amiga ROM Kernel Reference Manual: Devices" contains additional 
  7. * information on the correct usage of the techniques and operating system 
  8. * functions presented in these examples.  The source and executable code 
  9. * of these examples may only be distributed in free electronic form, via 
  10. * bulletin board or as part of a fully non-commercial and freely 
  11. * redistributable diskette.  Both the source and executable code (including 
  12. * comments) must be included, without modification, in any copy.  This 
  13. * example may not be published in printed form or distributed with any
  14. * commercial product.  However, the programming techniques and support
  15. * routines set forth in these examples may be used in the development
  16. * of original executable software products for Commodore Amiga computers.
  17. * All other rights reserved.
  18. * This example is provided "as-is" and is subject to change; no
  19. * warranties are made.  All use is at your own risk. No liability or
  20. * responsibility is assumed.
  21. *
  22. **********************************************************************
  23. *
  24. *   d.asm - d (GERMAN) A2000 key map
  25. *
  26. **********************************************************************
  27.  
  28.  
  29. **   Assemble and then link without startup code or linker libs
  30.  
  31. *------ Included Files -----------------------------------------------
  32.         INCLUDE         "exec/types.i"
  33.         INCLUDE         "devices/keymap.i"
  34. *---------------------------------------------------------------------
  35.         DC.L    0,0             ; ln_Succ, ln_Pred
  36.         DC.B    0,0             ; ln_Type, ln_Pri
  37.         DC.L    KMName          ; ln_Name
  38.         DC.L    KMLowMapType
  39.         DC.L    KMLowMap
  40.         DC.L    KMLCapsable
  41.         DC.L    KMLRepeatable
  42.         DC.L    KMHighMapType
  43.         DC.L    KMHighMap
  44.         DC.L    KMHCapsable
  45.         DC.L    KMHRepeatable
  46. *------ Key Translation Table ----------------------------------------
  47. *  Raw key codes
  48. *
  49. *  45   50  51  52  53  54   55  56  57  58  59
  50. *  00   01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 41  46  5F    5A  5B  5C  5D
  51. *  42    10 11 12 13 14 15 16 17 18 19 1A 1B   44            3D  3E  3F  4A
  52. *  63 62  20 21 22 23 24 25 26 27 28 29 2A 2B        4C      2D  2E  2F  5E
  53. *  60 30   31 32 33 34 35 36 37 38 39 3A     61   4F 4D 4E   1D  1E  1F  43
  54. *     64  66                40             67 65             0F      3C
  55. *
  56. *---------------------------------------------------------------------
  57. *  German (D) mapping
  58. *
  59. *  ESC  F1  F2  F3  F4  F5   F6  F7  F8  F9  F10
  60. *  `~   1! 2" 3S 4$ 5% 6& 7/ 8( 9) 0= B? '` \| BS  DEL HELP  [{  ]}  /   *
  61. *  TAB   qQ wW eE rR tT zZ uU iI oO pP uU +*  RET            7   8   9   -
  62. *  CT CL  aA sS dD fF gG hH jJ kK lL oO aA #^        UC      4   5   6   +
  63. *  SH <>   yY xX cC vV bB nN mM ,; .: -_     SH   LC DC RC   1   2   3   ENT
  64. *     ALT AM              SPACE            AM ALT            0       .
  65. *
  66. *---------------------------------------------------------------------
  67. *   For comparison, here's the USA1 mapping
  68. *
  69. *  ESC  F1  F2  F3  F4  F5   F6  F7  F8  F9  F10
  70. *  `~   1! 2@ 3# 4$ 5% 6^ 7& 8* 9( 0) -_ =+ \| BS  DEL HELP  ((  ))  //  **
  71. *  TAB   qQ wW eE rR tT yY uU iI oO pP [{ ]}  RET            77  88  99  --
  72. *  CT CL  aA sS dD fF gG hH jJ kK lL ;: '" [2B]      UC      44  55  66  ++
  73. *  SH [30] zZ xX cC vV bB nN mM ,< .> /?     SH   LC DC RC   11  22  33 ENT
  74. *     ALT AM              SPACE            AM ALT            00      ..
  75. *
  76. *--------------------------------------------------------------------------
  77. *
  78. *       40      Space
  79. *       41      Backspace
  80. *       42      Tab
  81. *       43      Enter
  82. *       44      Return
  83. *       45      Escape
  84. *       46      Delete
  85. *       4A      Numeric Pad -
  86. *       4C      Cursor Up
  87. *       4D      Cursor Down
  88. *       4E      Cursor Forward
  89. *       4F      Cursor Backward
  90. *
  91. *       50-59   Function keys F1-F10
  92. *       5A      Numeric Pad [{  (A2000)
  93. *       5B      Numeric Pad ]}  (A2000)
  94. *       5C      Numeric Pad /   (A2000)
  95. *       5D      Numeric Pad *   (A2000)
  96. *       5E      Numeric Pad +   (A2000)
  97. *       5F      Help
  98. *
  99. *       60      Left Shift
  100. *       61      Right Shift
  101. *       62      Caps Lock
  102. *       63      Control
  103. *       64      Left Alt
  104. *       65      Right Alt
  105. *       66      Left Amiga
  106. *       67      Right Amiga
  107. *
  108. *       68      Left Mouse Button (not converted)
  109. *       69      Right Mouse Button (not converted)
  110. *       6A      Middle Mouse Button (not converted)
  111. *
  112. *---------------------------------------------------------------------
  113. KMLCapsable: ; NL means NULL (undefined) and RE means RESERVED
  114.         DC.B    %00000000       ; 7\ 6& 5% 4$ 3s 2" 1! []  07 - 00
  115.         DC.B    %00000000       ; 0N NL \| '` B? 0= 9) 8(  0F - 08
  116.         DC.B    %11111111       ; iI uU zZ tT rR eE wW qQ  17 - 10
  117.         DC.B    %00000111       ; 3N 2N 1N NL +* UU pP oO  1F - 18
  118.         DC.B    %11111111       ; kK jJ hH gG fF dD sS aA  27 - 20
  119.         DC.B    %00000111       ; 6N 5N 4N NL #' AA OO lL  2F - 28
  120.         DC.B    %11111110       ; mM nN bB vV cC xX yY <>  37 - 30
  121.         DC.B    %00000000       ; 9N 8N 7N .N NL -_ .: ,;  3F - 38
  122.  
  123. KMHCapsable:
  124.         DC.B    %00000000       ; 47 - 40
  125.         DC.B    %00000000       ; 4F - 48
  126.         DC.B    %00000000       ; 57 - 50
  127.         DC.B    %00000000       ; 5F - 58
  128.         DC.B    %00000000       ; 67 - 60
  129.         DC.B    %00000000       ; 6F - 68
  130.         DC.B    %00000000       ; 77 - 70
  131. KMLRepeatable:
  132.         DC.B    %11111111       ; 7\ 6& 5% 4$ 3s 2" 1! []  07 - 00
  133.         DC.B    %10111111       ; 0N NL \| '` B? 0= 9) 8(  0F - 08
  134.         DC.B    %11111111       ; iI uU zZ tT rR eE wW qQ  17 - 10
  135.         DC.B    %11101111       ; 3N 2N 1N NL +* UU pP oO  1F - 18
  136.         DC.B    %11111111       ; kK jJ hH gG fF dD sS aA  27 - 20
  137.         DC.B    %11101111       ; 6N 5N 4N NL #' AA OO lL  2F - 28
  138.         DC.B    %11111111       ; mM nN bB vV cC xX yY <>  37 - 30
  139.         DC.B    %11110111       ; 9N 8N 7N .N NL -_ .: ,;  3F - 38
  140. KMHRepeatable:
  141.         DC.B    %01000111       ; 47 - 40
  142.         DC.B    %11110100       ; 4F - 48
  143.         DC.B    %11111111       ; 57 - 50
  144.         DC.B    %01111111       ; 5F - 58
  145.         DC.B    %00000000       ; 67 - 60
  146.         DC.B    %00000000       ; 6F - 68
  147.         DC.B    %00000000       ; 77 - 70
  148. KMLowMapType:
  149.         DC.B    KC_VANILLA              ; []            $00
  150.         DC.B    KCF_SHIFT+KCF_ALT       ; 1!
  151.         DC.B    KCF_SHIFT+KCF_ALT       ; 2"
  152.         DC.B    KCF_SHIFT+KCF_ALT       ; 3s
  153.         DC.B    KCF_SHIFT+KCF_ALT       ; 4$
  154.         DC.B    KCF_SHIFT+KCF_ALT       ; 5%
  155.         DC.B    KC_VANILLA              ; 6&
  156.         DC.B    KCF_SHIFT+KCF_ALT       ; 7/
  157.         DC.B    KCF_SHIFT+KCF_ALT       ; 8(            $08
  158.         DC.B    KCF_SHIFT+KCF_ALT       ; 9)
  159.         DC.B    KCF_SHIFT+KCF_ALT       ; 0=
  160.         DC.B    KC_VANILLA              ; B?
  161.         DC.B    KCF_DEAD+KCF_SHIFT+KCF_ALT ; '`
  162.         DC.B    KC_VANILLA              ; \|
  163.         DC.B    KCF_NOP                 ;NL
  164.         DC.B    KC_NOQUAL               ; 0N
  165.         DC.B    KC_VANILLA              ; qQ            $10
  166.         DC.B    KC_VANILLA              ; wW
  167.         DC.B    KCF_DEAD+KC_VANILLA     ; eE
  168.         DC.B    KC_VANILLA              ; rR
  169.         DC.B    KC_VANILLA              ; tT
  170.         DC.B    KC_VANILLA              ; zZ
  171.         DC.B    KCF_DEAD+KC_VANILLA     ; uU
  172.         DC.B    KCF_DEAD+KC_VANILLA     ; iI
  173.         DC.B    KCF_DEAD+KC_VANILLA     ; oO            $18
  174.         DC.B    KC_VANILLA              ; pP
  175.         DC.B    KC_VANILLA              ; omlatuU
  176.         DC.B    KC_VANILLA              ; +*
  177.         DC.B    KCF_NOP                 ; NL
  178.         DC.B    KC_NOQUAL               ; 1N
  179.         DC.B    KC_NOQUAL               ; 2N
  180.         DC.B    KC_NOQUAL               ; 3N
  181.         DC.B    KCF_DEAD+KC_VANILLA     ; aA            $20
  182.         DC.B    KC_VANILLA              ; sS
  183.         DC.B    KC_VANILLA              ; dD
  184.         DC.B    KCF_DEAD+KC_VANILLA     ; fF
  185.         DC.B    KCF_DEAD+KC_VANILLA     ; gG
  186.         DC.B    KCF_DEAD+KC_VANILLA     ; hH
  187.         DC.B    KCF_DEAD+KC_VANILLA     ; jJ
  188.         DC.B    KCF_DEAD+KC_VANILLA     ; kK
  189.         DC.B    KC_VANILLA              ; lL            $28
  190.         DC.B    KCF_SHIFT+KCF_ALT       ; umlotoO
  191.         DC.B    KCF_SHIFT+KCF_ALT       ; umlotaA
  192.         DC.B    KC_VANILLA              ; #^
  193.         DC.B    KCF_NOP                 ; NL
  194.         DC.B    KC_NOQUAL               ; 4N
  195.         DC.B    KC_NOQUAL               ; 5N
  196.         DC.B    KC_NOQUAL               ; 6N
  197.         DC.B    KCF_SHIFT               ; <>            $30
  198.         DC.B    KCF_DEAD+KC_VANILLA     ; yY
  199.         DC.B    KC_VANILLA              ; xX
  200.         DC.B    KC_VANILLA              ; cC
  201.         DC.B    KC_VANILLA              ; vV
  202.         DC.B    KC_VANILLA              ; bB
  203.         DC.B    KCF_DEAD+KC_VANILLA     ; nN
  204.         DC.B    KC_VANILLA              ; mM
  205.         DC.B    KCF_SHIFT+KCF_ALT       ; ,;            $38
  206.         DC.B    KCF_SHIFT+KCF_ALT       ; .:
  207.         DC.B    KC_VANILLA              ; -_
  208.         DC.B    KCF_NOP                 ; NL
  209.         DC.B    KC_NOQUAL               ; .N
  210.         DC.B    KC_NOQUAL               ; 7N
  211.         DC.B    KC_NOQUAL               ; 8N
  212.         DC.B    KC_NOQUAL               ; 9N
  213. KMHighMapType:
  214.         DC.B    KCF_DEAD+KCF_ALT        ; SPACE         $40
  215.         DC.B    KC_NOQUAL               ; BACKSPACE
  216.         DC.B    KCF_STRING+KCF_SHIFT    ; TAB
  217.         DC.B    KC_NOQUAL               ; ENTER
  218.         DC.B    KCF_CONTROL             ; RETURN
  219.         DC.B    KCF_ALT                 ; ESCAPE
  220.         DC.B    KC_NOQUAL               ; DELETE
  221.         DC.B    KCF_NOP
  222.         DC.B    KCF_NOP                 ;               $48
  223.         DC.B    KCF_NOP
  224.         DC.B    KC_NOQUAL               ; Numeric Pad -
  225.         DC.B    KCF_NOP
  226.         DC.B    KCF_STRING+KCF_SHIFT    ; CURSOR UP
  227.         DC.B    KCF_STRING+KCF_SHIFT    ; CURSOR DOWN
  228.         DC.B    KCF_STRING+KCF_SHIFT    ; CURSOR FORWARD
  229.         DC.B    KCF_STRING+KCF_SHIFT    ; CURSOR BACKWARD
  230.         DC.B    KCF_STRING+KCF_SHIFT    ; FKEY 1        $50
  231.         DC.B    KCF_STRING+KCF_SHIFT    ; FKEY 2
  232.         DC.B    KCF_STRING+KCF_SHIFT    ; FKEY 3
  233.         DC.B    KCF_STRING+KCF_SHIFT    ; FKEY 4
  234.         DC.B    KCF_STRING+KCF_SHIFT    ; FKEY 5
  235.         DC.B    KCF_STRING+KCF_SHIFT    ; FKEY 6
  236.         DC.B    KCF_STRING+KCF_SHIFT    ; FKEY 7
  237.         DC.B    KCF_STRING+KCF_SHIFT    ; FKEY 8
  238.         DC.B    KCF_STRING+KCF_SHIFT    ; FKEY 9        $58
  239.         DC.B    KCF_STRING+KCF_SHIFT    ; FKEY 10
  240.         DC.B    KCF_SHIFT+KCF_CONTROL   ; Numeric Pad [{
  241.         DC.B    KCF_SHIFT+KCF_CONTROL   ; Numeric Pad ]}
  242.         DC.B    KC_NOQUAL               ; Numeric Pad /
  243.         DC.B    KC_NOQUAL               ; Numeric Pad *
  244.         DC.B    KC_NOQUAL               ; Numeric Pad +
  245.         DC.B    KCF_STRING              ; Help
  246.         DC.B    KCF_NOP                 ; Left Shift    $60
  247.         DC.B    KCF_NOP                 ; Right Shift
  248.         DC.B    KCF_NOP                 ; Caps Lock
  249.         DC.B    KCF_NOP                 ; Control
  250.         DC.B    KCF_NOP                 ; Left Alt
  251.         DC.B    KCF_NOP                 ; Right Alt
  252.         DC.B    KCF_NOP                 ; Left Amiga
  253.         DC.B    KCF_NOP                 ; Right Amiga
  254.         DC.B    KCF_NOP                 ; Left Mouse Button $68
  255.         DC.B    KCF_NOP                 ; Right Mouse Button
  256.         DC.B    KCF_NOP                 ; Middle Mouse Button
  257.         DC.B    KCF_NOP
  258.         DC.B    KCF_NOP
  259.         DC.B    KCF_NOP
  260.         DC.B    KCF_NOP
  261.         DC.B    KCF_NOP
  262.         DC.B    KCF_NOP                 ; $70
  263.         DC.B    KCF_NOP
  264.         DC.B    KCF_NOP
  265.         DC.B    KCF_NOP
  266.         DC.B    KCF_NOP
  267.         DC.B    KCF_NOP
  268.         DC.B    KCF_NOP
  269.         DC.B    KCF_NOP
  270. KMLowMap:
  271.         DC.B    '~','`','~','`' ; `, ~, `, ~                            $00
  272.         DC.B    '!',$B9,'!','1' ; 1, !, super 1, !
  273.         DC.B    $B2,'@','"','2' ; 2, ", @, super 2
  274.         DC.B    '#',$B3,$A7,'3' ; 3, section, super 3, #
  275.         DC.B    $A2,$B0,'$','4' ; 4, $, degree, cents
  276.         DC.B    '%',$BC,'%','5' ; 5, %, 1/4, %
  277.         DC.B    '^',$BD,'&','6' ; 6, &, 1/2, ^
  278.         DC.B    '&',$BE,'/','7' ; 7, /, 3/4, &
  279.         DC.B    '*',$B7,'(','8' ; 8, (, bullet, *                       $08
  280.         DC.B    '(',$AB,')','9' ; 9, ), <<, (
  281.         DC.B    ')',$BB,'=','0' ; 0, =, >>, )
  282.         DC.B    '_','-','?',$DF ; sharp s, ?, -, _
  283.         DC.L    key0C           ; dead ', dead `, =, +
  284.         DC.B    '|','\','|','\' ; \, |, \, |
  285.         DC.L    0               ; NOP
  286.         DC.B    0,0,0,'0'       ; numeric pad 0 (0N)
  287.         DC.B    $C5,$E5,'Q','q' ; q, Q, dot a, dot A                    $10
  288.         DC.B    $B0,$B0,'W','w' ; w, W, dot, dot
  289.         DC.L    key12   ; e, E, (c), (c)
  290.         DC.B    $AE,$AE,'R','r' ; r, R, (r), (r)
  291.         DC.B    $DE,$FE,'T','t' ; t, T, thorn, THORN
  292.         DC.B    $A5,$A4,'Z','z' ; z, Z, IMS, Yen
  293.         DC.L    key16           ; u, U, micro, micro
  294.         DC.L    key17           ; i, I, inverted !, broken |
  295.         DC.L    key18           ; o, O, slash o, slash O                $18
  296.         DC.B    $B6,$B6,'P','p' ; p, P, paragraph, paragraph
  297.         DC.B    '{','[',$DC,$FC ; umlaut u, umlaut U, [, {
  298.         DC.B    '}',']','*','+' ; +, *, ], }
  299.         DC.L    0               ; NOP
  300.         DC.B    0,0,0,'1'       ; numeric pad 1 (1N)
  301.         DC.B    0,0,0,'2'       ; numeric pad 2 (2N)
  302.         DC.B    0,0,0,'3'       ; numeric pad 3 (3N)
  303.         DC.L    key20           ; a, A, ae, AE                          $20
  304.         DC.B    $A7,$DF,'S','s' ; s, S, sharp s, section
  305.         DC.B    $D0,$F0,'D','d' ; d, D, bar d, bar D
  306.         DC.L    key23           ; f, F, dead '
  307.         DC.L    key24           ; g, G, dead `
  308.         DC.L    key25           ; h, H, dead ^
  309.         DC.L    key26           ; j, J, dead ~
  310.         DC.L    key27           ; k, K, dead "
  311.         DC.B    $A3,$A3,'L','l' ; l, L, pound, pound                    $28
  312.         DC.B    ':',';',$D6,$F6 ; umlaut o, umlaut O, ;, :
  313.         DC.B    '"',$27,$C4,$E4 ; umlaut a, umlaut A, ', "
  314.         DC.B    '^','#','^','#' ; #, ^, #, ^
  315.         DC.L    0               ; NOP
  316.         DC.B    0,0,0,'4'       ; numeric pad 4 (4N)
  317.         DC.B    0,0,0,'5'       ; numeric pad 5 (5N)
  318.         DC.B    0,0,0,'6'       ; numeric pad 6 (6N)
  319.         DC.B    0,0,'>','<'     ; <, >                                  $30
  320.         DC.L    key31           ; y, Y, +/-, not
  321.         DC.B    $F7,$D7,'X','x' ; x, X, times, divide
  322.         DC.B    $C7,$E7,'C','c' ; c, C, c cedilla, C cedilla
  323.         DC.B    $AA,$AA,'V','v' ; v, V, female ordinal
  324.         DC.B    $BA,$BA,'B','b' ; b, B, male ordinal
  325.         DC.L    key36           ; n, N, SHY, overbar
  326.         DC.B    $BF,$B8,'M','m' ; m, M, cedilla, inverted ?
  327.         DC.B    '<',',',';',',' ; ,, ;, ,, <                            $38
  328.         DC.B    '>','.',':','.' ; ., :, ., >
  329.         DC.B    '?','/','_','-' ; -, _, /, ?
  330.         DC.L    0               ; NOP
  331.         DC.B    0,0,0,'.'       ; numeric pad . (.N)
  332.         DC.B    0,0,0,'7'       ; numeric pad 7 (7N)
  333.         DC.B    0,0,0,'8'       ; numeric pad 8 (8N)
  334.         DC.B    0,0,0,'9'       ; numeric pad 9 (9N)
  335. KMHighMap:
  336.         DC.L    key40                                                   $40
  337.         DC.B    0,0,0,$08
  338.         DC.L    key42
  339.         DC.B    0,0,0,$0D
  340.         DC.B    0,0,$0A,$0D
  341.         DC.B    0,0,$9B,$1B
  342.         DC.B    0,0,0,$7F
  343.         DC.L    0
  344.         DC.L    0                                                       $48
  345.         DC.L    0
  346.         DC.B    0,0,0,'-'
  347.         DC.L    0
  348.         DC.L    key4C
  349.         DC.L    key4D
  350.         DC.L    key4E
  351.         DC.L    key4F
  352.         DC.L    key50                                                   $50
  353.         DC.L    key51
  354.         DC.L    key52
  355.         DC.L    key53
  356.         DC.L    key54
  357.         DC.L    key55
  358.         DC.L    key56
  359.         DC.L    key57
  360.         DC.L    key58                                                   $58
  361.         DC.L    key59
  362.         DC.B    $1B,$1B,'{','[' ; numeric pad [, {
  363.         DC.B    $1D,$1D,'}',']' ; numeric pad ], }
  364.         DC.B    0,0,0,'/'       ; numeric pad /
  365.         DC.B    0,0,0,'*'       ; numeric pad *
  366.         DC.B    0,0,0,'+'       ; numeric pad +
  367.         DC.L    key5F
  368.         DC.L    0                                                       $60
  369.         DC.L    0
  370.         DC.L    0
  371.         DC.L    0
  372.         DC.L    0
  373.         DC.L    0
  374.         DC.L    0
  375.         DC.L    0
  376.         DC.L    0                                                       $68
  377.         DC.L    0
  378.         DC.L    0
  379.         DC.L    0
  380.         DC.L    0
  381.         DC.L    0
  382.         DC.L    0
  383.         DC.L    0
  384.         DC.L    0                                                       $70
  385.         DC.L    0
  386.         DC.L    0
  387.         DC.L    0
  388.         DC.L    0
  389.         DC.L    0
  390.         DC.L    0
  391.         DC.L    0
  392. ;------ possible dead keys
  393. key0C:
  394.         DC.B    DPF_DEAD,1+(6<<DP_2DFACSHIFT)   ; dead '
  395.         DC.B    DPF_DEAD,2+(6<<DP_2DFACSHIFT)   ; dead `
  396.         DC.B    0,'=',0,'+'                     ; =, +
  397. key23:
  398.         DC.B    0,'f',0,'F'                     ; f, F
  399.         DC.B    DPF_DEAD,1+(6<<DP_2DFACSHIFT)   ; dead '
  400.         DC.B    DPF_DEAD,1+(6<<DP_2DFACSHIFT)   ; dead '
  401.         DC.B    0,$06,0,$06,0,$86,0,$86         ; control translation
  402. key24:
  403.         DC.B    0,'g',0,'G'                     ; g, G
  404.         DC.B    DPF_DEAD,2+(6<<DP_2DFACSHIFT)   ; dead `
  405.         DC.B    DPF_DEAD,2+(6<<DP_2DFACSHIFT)   ; dead `
  406.         DC.B    0,$07,0,$07,0,$87,0,$87         ; control translation
  407. key25:
  408.         DC.B    0,'h',0,'H'                     ; h, H
  409.         DC.B    DPF_DEAD,3,DPF_DEAD,3           ; dead ^, dead ^
  410.         DC.B    0,$08,0,$08,0,$88,0,$88         ; control translation
  411. key26:
  412.         DC.B    0,'j',0,'J'                     ; j, J
  413.         DC.B    DPF_DEAD,4,DPF_DEAD,4           ; dead ~, dead ~
  414.         DC.B    0,$0A,0,$0A,0,$8A,0,$8A         ; control translation
  415. key27:
  416.         DC.B    0,'k',0,'K'                     ; k, K
  417.         DC.B    DPF_DEAD,5,DPF_DEAD,5           ; dead ", dead "
  418.         DC.B    0,$0B,0,$0B,0,$8B,0,$8B         ; control translation
  419. ;------ deadable keys (modified by dead keys)
  420. key12:                  ; e, E, (c), (c)
  421.         DC.B    DPF_MOD,key12u-key12,DPF_MOD,key12s-key12
  422.         DC.B    0,$A9,0,$A9
  423.         DC.B    0,$05,0,$05,0,$85,0,$85 ; control translation
  424. key12u:
  425.         DC.B    'e',$E9,$E8,$EA,'e',$EB
  426.         DC.B    $E9,$E9,$EA,$E9,$E9,$E9
  427.         DC.B    $E8,$EA,$E8,$E8,$E8,$E8
  428. key12s:
  429.         DC.B    'E',$C9,$C8,$CA,'E',$CB
  430.         DC.B    $C9,$C9,$CA,$C9,$C9,$C9
  431.         DC.B    $C8,$CA,$C8,$C8,$C8,$C8
  432. key16:                  ; u, U, micro, micro
  433.         DC.B    DPF_MOD,key16u-key16,DPF_MOD,key16s-key16
  434.         DC.B    0,$B5,0,$B5
  435.         DC.B    0,$15,0,$15,0,$95,0,$95 ; control translation
  436. key16u:
  437.         DC.B    'u',$FA,$F9,$FB,'u',$FC
  438.         DC.B    $FA,$FA,$FB,$FA,$FA,$FA
  439.         DC.B    $F9,$FB,$F9,$F9,$F9,$F9
  440. key16s:
  441.         DC.B    'U',$DA,$D9,$DB,'U',$DC
  442.         DC.B    $DA,$DA,$DB,$DA,$DA,$DA
  443.         DC.B    $D9,$DB,$D9,$D9,$D9,$D9
  444. key17:                  ; i, I, inverted !, broken |
  445.         DC.B    DPF_MOD,key17u-key17,DPF_MOD,key17s-key17
  446.         DC.B    0,$A1,0,$A6
  447.         DC.B    0,$09,0,$09,0,$89,0,$89 ; control translation
  448. key17u:
  449.         DC.B    'i',$ED,$EC,$EE,'i',$EF
  450.         DC.B    $ED,$ED,$EE,$ED,$ED,$ED
  451.         DC.B    $EC,$EE,$EC,$EC,$EC,$EC
  452. key17s:
  453.         DC.B    'I',$CD,$CC,$CE,'I',$CF
  454.         DC.B    $CD,$CD,$CE,$CD,$CD,$CD
  455.         DC.B    $CC,$CE,$CC,$CC,$CC,$CC
  456. key18:                  ; o, O, bar o, bar O
  457.         DC.B    DPF_MOD,key18u-key18,DPF_MOD,key18s-key18
  458.         DC.B    0,$F8,0,$D8
  459.         DC.B    0,$0F,0,$0F,0,$8F,0,$8F ; control translation
  460. key18u:
  461.         DC.B    'o',$F3,$F2,$F4,$F5,$F6
  462.         DC.B    $F3,$F3,$F4,$F3,$F3,$F3
  463.         DC.B    $F2,$F4,$F2,$F2,$F2,$F2
  464. key18s:
  465.         DC.B    'O',$D3,$D2,$D4,$D5,$D6
  466.         DC.B    $D3,$D3,$D4,$D3,$D3,$D3
  467.         DC.B    $D2,$D4,$D2,$D2,$D2,$D2
  468. key20:                  ; a, A, ae, AE
  469.         DC.B    DPF_MOD,key20u-key20,DPF_MOD,key20s-key20
  470.         DC.B    0,$E6,0,$C6
  471.         DC.B    0,$01,0,$01,0,$81,0,$81 ; control translation
  472. key20u:
  473.         DC.B    'a',$E1,$E0,$E2,$E3,$E4
  474.         DC.B    $E1,$E1,$E2,$E1,$E1,$E1 ; most recent is '
  475.         DC.B    $E0,$E2,$E0,$E0,$E0,$E0 ; most recent is `
  476. key20s:
  477.         DC.B    'A',$C1,$C0,$C2,$C3,$C4
  478.         DC.B    $C1,$C1,$C2,$C1,$C1,$C1 ; most recent is '
  479.         DC.B    $C0,$C2,$C0,$C0,$C0,$C0 ; most recent is `
  480. key36:                  ; n, N, SHY, overbar
  481.         DC.B    DPF_MOD,key36u-key36,DPF_MOD,key36s-key36
  482.         DC.B    0,$AD,0,$AF
  483.         DC.B    0,$0E,0,$0E,0,$8E,0,$8E ; control translation
  484. key36u:
  485.         DC.B    'n','n','n','n',$F1,'n'
  486.         DC.B    'n','n','n','n','n','n'
  487.         DC.B    'n','n','n','n','n','n'
  488. key36s:
  489.         DC.B    'N','N','N','N',$D1,'N'
  490.         DC.B    'N','N','N','N','N','N'
  491.         DC.B    'N','N','N','N','N','N'
  492. key31:                  ; y, Y, +/-, not
  493.         DC.B    DPF_MOD,key31u-key31,DPF_MOD,key31s-key31
  494.         DC.B    0,$B1,0,$AC
  495.         DC.B    0,$19,0,$19,0,$99,0,$99 ; control translation
  496. key31u:
  497.         DC.B    'y',$FD,'y','y','y',$FF
  498.         DC.B    $FD,$FD,$FD,$FD,$FD,$FD
  499.         DC.B    'y','y','y','y','y','y'
  500. key31s:
  501.         DC.B    'Y',$DD,'Y','Y','Y','Y'
  502.         DC.B    $DD,$DD,$DD,$DD,$DD,$DD
  503.         DC.B    'Y','Y','Y','Y','Y','Y'
  504. key40:                  ; space,,NBSP, and accents
  505.         DC.B    DPF_MOD,key40d-key40,0,$A0
  506. key40d:
  507.         DC.B    ' ',$B4,'`','^','~',$A8
  508.         DC.B    $B4,'^',$B4,$B4,$B4,$B4
  509.         DC.B    '`','`','^','`','`','`'
  510. ;------ string keys
  511. key42:
  512.         DC.B    key42ue-key42us,key42us-key42
  513.         DC.B    key42se-key42ss,key42ss-key42
  514. key42us:
  515.         DC.B    $09
  516. key42ue:
  517. key42ss:
  518.         DC.B    $9B,'Z'
  519. key42se:
  520. key4C:
  521.         DC.B    key4Cue-key4Cus,key4Cus-key4C
  522.         DC.B    key4Cse-key4Css,key4Css-key4C
  523. key4Cus:
  524.         DC.B    $9B,'A'
  525. key4Cue:
  526. key4Css:
  527.         DC.B    $9B,'T'
  528. key4Cse:
  529. key4D:
  530.         DC.B    key4Due-key4Dus,key4Dus-key4D
  531.         DC.B    key4Dse-key4Dss,key4Dss-key4D
  532. key4Dus:
  533.         DC.B    $9B,'B'
  534. key4Due:
  535. key4Dss:
  536.         DC.B    $9B,'S'
  537. key4Dse:
  538. key4E:
  539.         DC.B    key4Eue-key4Eus,key4Eus-key4E
  540.         DC.B    key4Ese-key4Ess,key4Ess-key4E
  541. key4Eus:
  542.         DC.B    $9B,'C'
  543. key4Eue:
  544. key4Ess:
  545.         DC.B    $9B,' ','@'
  546. key4Ese:
  547. key4F:
  548.         DC.B    key4Fue-key4Fus,key4Fus-key4F
  549.         DC.B    key4Fse-key4Fss,key4Fss-key4F
  550. key4Fus:
  551.         DC.B    $9B,'D'
  552. key4Fue:
  553. key4Fss:
  554.         DC.B    $9B,' ','A'
  555. key4Fse:
  556. key50:
  557.         DC.B    key50ue-key50us,key50us-key50
  558.         DC.B    key50se-key50ss,key50ss-key50
  559. key50us:
  560.         DC.B    $9B,'0~'
  561. key50ue:
  562. key50ss:
  563.         DC.B    $9B,'10~'
  564. key50se:
  565. key51:
  566.         DC.B    key51ue-key51us,key51us-key51
  567.         DC.B    key51se-key51ss,key51ss-key51
  568. key51us:
  569.         DC.B    $9B,'1~'
  570. key51ue:
  571. key51ss:
  572.         DC.B    $9B,'11~'
  573. key51se:
  574. key52:
  575.         DC.B    key52ue-key52us,key52us-key52
  576.         DC.B    key52se-key52ss,key52ss-key52
  577. key52us:
  578.         DC.B    $9B,'2~'
  579. key52ue:
  580. key52ss:
  581.         DC.B    $9B,'12~'
  582. key52se:
  583. key53:
  584.         DC.B    key53ue-key53us,key53us-key53
  585.         DC.B    key53se-key53ss,key53ss-key53
  586. key53us:
  587.         DC.B    $9B,'3~'
  588. key53ue:
  589. key53ss:
  590.         DC.B    $9B,'13~'
  591. key53se:
  592. key54:
  593.         DC.B    key54ue-key54us,key54us-key54
  594.         DC.B    key54se-key54ss,key54ss-key54
  595. key54us:
  596.         DC.B    $9B,'4~'
  597. key54ue:
  598. key54ss:
  599.         DC.B    $9B,'14~'
  600. key54se:
  601. key55:
  602.         DC.B    key55ue-key55us,key55us-key55
  603.         DC.B    key55se-key55ss,key55ss-key55
  604. key55us:
  605.         DC.B    $9B,'5~'
  606. key55ue:
  607. key55ss:
  608.         DC.B    $9B,'15~'
  609. key55se:
  610. key56:
  611.         DC.B    key56ue-key56us,key56us-key56
  612.         DC.B    key56se-key56ss,key56ss-key56
  613. key56us:
  614.         DC.B    $9B,'6~'
  615. key56ue:
  616. key56ss:
  617.         DC.B    $9B,'16~'
  618. key56se:
  619. key57:
  620.         DC.B    key57ue-key57us,key57us-key57
  621.         DC.B    key57se-key57ss,key57ss-key57
  622. key57us:
  623.         DC.B    $9B,'7~'
  624. key57ue:
  625. key57ss:
  626.         DC.B    $9B,'17~'
  627. key57se:
  628. key58:
  629.         DC.B    key58ue-key58us,key58us-key58
  630.         DC.B    key58se-key58ss,key58ss-key58
  631. key58us:
  632.         DC.B    $9B,'8~'
  633. key58ue:
  634. key58ss:
  635.         DC.B    $9B,'18~'
  636. key58se:
  637. key59:
  638.         DC.B    key59ue-key59us,key59us-key59
  639.         DC.B    key59se-key59ss,key59ss-key59
  640. key59us:
  641.         DC.B    $9B,'9~'
  642. key59ue:
  643. key59ss:
  644.         DC.B    $9B,'19~'
  645. key59se:
  646. key5F:
  647.         DC.B    key5Fe-key5Fs,key5Fs-key5F
  648. key5Fs:
  649.         DC.B    $9B,'?~'
  650. key5Fe:
  651. KMName:
  652.         DC.B    'd',0
  653. kmEnd
  654.         END
  655.